package com.example.weather

import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import android.view.View
import android.widget.RadioGroup
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

/**
 * @author Y7993
 * MoreActivity 类用于显示额外功能界面，包括分享软件和更改背景。
 */
class MoreActivity : AppCompatActivity() {
    var exbgRg: RadioGroup? = null
    private var pref: SharedPreferences? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_more)
        exbgRg = findViewById<RadioGroup>(R.id.more_rg)
        pref = getSharedPreferences("bg_pref", MODE_PRIVATE)
        setRGListener()
    }

    /**
     * 分享软件信息的方法。
     * @param view 点击事件触发的视图
     */
    fun shareSoftware(view: View?) {
        val intent = Intent(Intent.ACTION_SEND)
        intent.type = "text/plain"
        intent.putExtra(Intent.EXTRA_TEXT, "下载地址为")
        startActivity(Intent.createChooser(intent, "天气预报"))
    }

    /**
     * 点击更多选项时触发的方法。
     * @param view 点击事件触发的视图
     */
    fun click_more(view: View?) {
        shareSoftware(view)
    }

    /**
     * 发送消息的方法。
     * @param view 点击事件触发的视图
     */
    fun Send_mss(view: View?) {
        val intent = Intent(this, MsgActivity::class.java)
        startActivity(intent)
    }

    /**
     * 返回主界面的方法。
     * @param view 点击事件触发的视图
     */
    fun click_back(view: View?) {
        val intent = Intent(this, MainActivity::class.java)
        startActivity(intent)
    }

    /**
     * 切换背景显示的方法。
     * @param view 点击事件触发的视图
     */
    fun exchange_bg(view: View?) {
        if (exbgRg!!.visibility == View.VISIBLE) {
            exbgRg!!.visibility = View.GONE
        } else {
            exbgRg!!.visibility = View.VISIBLE
        }
    }

    /**
     * 设置单选按钮监听的方法，用于更改背景。
     */
    private fun setRGListener() {
        /* 设置改变背景图片的单选按钮的监听*/
        exbgRg!!.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group: RadioGroup?, checkedId: Int ->
// 获取目前的默认壁纸
            val bg = pref!!.getInt("bg", 0)
            val editor = pref!!.edit()
            val intent = Intent(this@MoreActivity, MainActivity::class.java)
            intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK

            if (checkedId == R.id.more_rb_green) {
                if (bg == 0) {
                    Toast.makeText(
                        this@MoreActivity,
                        "您选择的为当前背景，无需改变！",
                        Toast.LENGTH_SHORT
                    ).show()
                    return@OnCheckedChangeListener
                }
                editor.putInt("bg", 0)
                editor.apply()
                println("用户更改为青瓦白墙壁纸")
            } else if (checkedId == R.id.more_rb_pink) {
                if (bg == 1) {
                    Toast.makeText(
                        this@MoreActivity,
                        "您选择的为当前背景，无需改变！",
                        Toast.LENGTH_SHORT
                    ).show()
                    return@OnCheckedChangeListener
                }
                editor.putInt("bg", 1)
                editor.commit()
                println("用户更改为粉状玉砌壁纸")
            } else if (checkedId == R.id.more_rb_blue) {
                if (bg == 2) {
                    Toast.makeText(
                        this@MoreActivity,
                        "您选择的为当前背景，无需改变！",
                        Toast.LENGTH_SHORT
                    ).show()
                    return@OnCheckedChangeListener
                }
                editor.putInt("bg", 2)
                editor.commit()
                println("用户更改为蓝色梦想壁纸")
            }
            startActivity(intent)
        })
    }
}
